from waftools.pebble_test import clar


def build(ctx):
    rendering_sources = (
        "src/fw/applib/fonts/codepoint.c "
        "src/fw/applib/graphics/${BITDEPTH}_bit/bitblt_private.c "
        "src/fw/applib/graphics/${BITDEPTH}_bit/framebuffer.c "
        "src/fw/applib/graphics/bitblt.c "
        "src/fw/applib/graphics/framebuffer.c "
        "src/fw/applib/graphics/gbitmap.c "
        "src/fw/applib/graphics/gbitmap_png.c "
        "src/fw/applib/graphics/gbitmap_sequence.c "
        "src/fw/applib/graphics/gcolor_definitions.c "
        "src/fw/applib/graphics/gdraw_command.c "
        "src/fw/applib/graphics/gdraw_command_frame.c "
        "src/fw/applib/graphics/gdraw_command_image.c "
        "src/fw/applib/graphics/gdraw_command_list.c "
        "src/fw/applib/graphics/gdraw_command_sequence.c "
        "src/fw/applib/graphics/gpath.c "
        "src/fw/applib/graphics/graphics.c "
        "src/fw/applib/graphics/graphics_bitmap.c "
        "src/fw/applib/graphics/graphics_circle.c "
        "src/fw/applib/graphics/graphics_line.c "
        "src/fw/applib/graphics/graphics_private.c "
        "src/fw/applib/graphics/graphics_private_raw.c "
        "src/fw/applib/graphics/gtransform.c "
        "src/fw/applib/graphics/gtypes.c "
        "src/fw/applib/graphics/perimeter.c "
        "src/fw/applib/graphics/text_layout.c "
        "src/fw/applib/graphics/text_render.c "
        "src/fw/applib/graphics/text_resources.c "
        "src/fw/applib/graphics/utf8.c "
        "src/fw/applib/ui/kino/kino_reel.c "
        "src/fw/applib/ui/kino/kino_reel_gbitmap.c "
        "src/fw/applib/ui/kino/kino_reel_gbitmap_sequence.c "
        "src/fw/applib/ui/kino/kino_reel_pdci.c "
        "src/fw/applib/ui/kino/kino_reel_pdcs.c "
        "src/fw/applib/ui/layer.c "
        "src/fw/applib/ui/menu_layer_system_cells.c "
        "src/fw/applib/vendor/tinflate/tinflate.c "
        "src/fw/applib/vendor/uPNG/upng.c "
        "src/fw/board/displays/display_spalding.c "
        "src/fw/drivers/flash/flash_crc.c "
        "src/fw/flash_region/filesystem_regions.c "
        "src/fw/flash_region/flash_region.c "
        "src/fw/resource/resource.c "
        "src/fw/resource/resource_storage.c "
        "src/fw/resource/resource_storage_builtin.c "
        "src/fw/resource/resource_storage_file.c "
        "src/fw/resource/resource_storage_flash.c "
        "src/fw/services/normal/filesystem/app_file.c "
        "src/fw/services/normal/filesystem/flash_translation.c "
        "src/fw/services/normal/filesystem/pfs.c "
        "src/fw/system/hexdump.c "
        "src/fw/util/crc8.c "
        "src/fw/util/legacy_checksum.c "
        "tests/fakes/fake_animation.c "
        "tests/fakes/fake_applib_resource.c "
        "tests/fakes/fake_display.c "
        "tests/fakes/fake_gbitmap_get_data_row.c "
        "tests/fakes/fake_graphics_context.c "
        "tests/fakes/fake_property_animation.c "
        "tests/fakes/fake_rtc.c "
        "tests/fakes/fake_spi_flash.c "
        "tests/fixtures/resources/builtin_resources.auto.c "
        "tests/fixtures/resources/pfs_resource_table.c "
        "tests/stubs/stubs_animation.c "
    )

    timeline_app_sources = (
        "src/fw/applib/graphics/gdraw_command_transforms.c "
        "src/fw/applib/graphics/gpath_builder.c "
        "src/fw/applib/ui/action_button.c "
        "src/fw/applib/ui/animation_interpolate.c "
        "src/fw/applib/ui/content_indicator.c "
        "src/fw/applib/ui/inverter_layer.c "
        "src/fw/applib/ui/kino/kino_layer.c "
        "src/fw/applib/ui/kino/kino_player.c "
        "src/fw/applib/ui/kino/kino_reel/scale_segmented.c "
        "src/fw/applib/ui/kino/kino_reel/transform.c "
        "src/fw/applib/ui/kino/kino_reel/unfold.c "
        "src/fw/applib/ui/kino/kino_reel_custom.c "
        "src/fw/applib/ui/menu_layer.c "
        "src/fw/applib/ui/scroll_layer.c "
        "src/fw/applib/ui/shadows.c "
        "src/fw/applib/ui/status_bar_layer.c "
        "src/fw/applib/ui/text_layer.c "
        "src/fw/applib/ui/text_layer_flow.c "
        "src/fw/applib/ui/window.c "
        "src/fw/apps/system_apps/timeline/peek_layer.c "
        "src/fw/apps/system_apps/timeline/pin_window.c "
        "src/fw/apps/system_apps/timeline/text_node.c "
        "src/fw/apps/system_apps/timeline/timeline.c "
        "src/fw/apps/system_apps/timeline/timeline_animations.c "
        "src/fw/apps/system_apps/timeline/timeline_layer.c "
        "src/fw/apps/system_apps/timeline/timeline_model.c "
        "src/fw/apps/system_apps/timeline/timeline_relbar.c "
        "src/fw/popups/timeline/timeline_item_layer.c "
        "src/fw/services/common/clock.c "
        "src/fw/services/normal/blob_db/pin_db.c "
        "src/fw/services/normal/blob_db/timeline_item_storage.c "
        "src/fw/services/normal/timeline/attribute.c "
        "src/fw/services/normal/timeline/attribute_group.c "
        "src/fw/services/normal/timeline/attributes_actions.c "
        "src/fw/services/normal/timeline/generic_layout.c "
        "src/fw/services/normal/timeline/item.c "
        "src/fw/services/normal/timeline/layout_layer.c "
        "src/fw/services/normal/timeline/layout_node.c "
        "src/fw/services/normal/timeline/timeline.c "
        "src/fw/services/normal/timeline/timeline_layout.c "
        "src/fw/services/normal/timeline/timeline_resources.c "
        "src/fw/shell/system_theme.c "
        "src/fw/util/buffer.c "
        "src/fw/util/stats.c "
        "src/fw/util/stringlist.c "
        "src/fw/util/time/mktime.c "
        "src/fw/util/time/time.c "
        "tests/fakes/fake_fonts.c "
        "tests/fakes/fake_settings_file.c "
        "tests/fixtures/resources/timeline_resource_table.auto.c "
        "tests/stubs/stubs_evented_timer.c "
    )

    clar(ctx,
         sources_ant_glob=(
             rendering_sources +
             timeline_app_sources
         ),
         test_sources_ant_glob="test_timeline_list_view.c",
         defines=ctx.env.test_image_defines + ["USE_DISPLAY_PERIMETER_ON_FONT_LAYOUT=1"],
         runtime_deps=ctx.env.test_pngs + ctx.env.test_pbis + ctx.env.test_pfos,
         override_includes=['dummy_board'],
         platforms=['snowy', 'spalding', 'silk', 'robert'])

    clar(ctx,
         sources_ant_glob=(
             rendering_sources +
             timeline_app_sources
         ),
         test_sources_ant_glob="test_timeline_no_events.c",
         defines=ctx.env.test_image_defines + ["USE_DISPLAY_PERIMETER_ON_FONT_LAYOUT=1"],
         runtime_deps=ctx.env.test_pngs + ctx.env.test_pbis + ctx.env.test_pfos,
         override_includes=['dummy_board'],
         # The no events is a builtin on silk and thus cannot be used in a unit test currently
         platforms=['snowy', 'spalding', 'robert'])

# vim:filetype=python
